package com.woniuxy.oa.service.impl;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.woniuxy.oa.dao.EmpDAO;
import com.woniuxy.oa.entity.Emp;
import com.woniuxy.oa.entity.Permission;
import com.woniuxy.oa.service.EmpService;
import com.woniuxy.oa.util.OaUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

@Service
@Transactional
public class EmpServiceImpl implements EmpService {
    @Autowired
    private EmpDAO empDAO;

    /**
     * 添加一个新员工
     * @param emp
     */
    @Override
    public void add(Emp emp) {
        emp.setId(OaUtil.getId());
        emp.setLastTime(OaUtil.getNow());
        emp.setLastIp(OaUtil.getMyIp());
        emp.setStatus("1");
        empDAO.add(emp);
    }

    /**
     * 修改当前员工状态  便于逻辑删除等
     * @param id
     * @param status
     */
    @Override
    public void updateUserStatusById(String id, String status) {
    empDAO.updateUserStatusById(id,status);
    }

    /**
     * 修改员工个人信息
     * @param emp
     */
    @Override
    public void updateEmpById(Emp emp) {
        empDAO.updateEmpById(emp);
    }

    /**
     * 条件查询符合条件的员工
     * @param emp
     * @return
     */
    @Override
    public List<Emp> getAllEmp(Emp emp) {
        return empDAO.getAllEmp(emp);
    }

    public Emp getEmpById(String id){
        Emp emp=empDAO.getEmpById(id);
        return emp;

    }

    /**
     * 通过账号密码修改密码
     * @param id
     * @param password
     * @param newPassword
     */
    @Override
    public void updatePwd(String id, String password, String newPassword) {

        empDAO.updatePwd(id, password, newPassword);
    }

    /**
     * 通过账号密码登录
     * @param name
     * @param password
     * @return
     */
    @Override
    public Emp login(String name, String password) {
        Emp emp=empDAO.getEmpByNameAndPwd(name,password);
        if(emp!=null) {
            return emp;
        }else {
            return null;
        }
    }

    @Override
    public PageInfo getPageBean(Emp emp, Integer page) {
        PageHelper.startPage(page, 5);
        List<Emp> empList = empDAO.getAllEmp(emp);
        PageInfo pageInfo = new PageInfo(empList);
        return pageInfo;
    }

    @Override
    public void delById(String[] ids) {
        if (ids != null) {
            for (String id : ids) {
                empDAO.delById("2", id);
            }
        }
    }

    @Override
    public List<Permission> getPerm(String id) {
        return empDAO.getPerm(id);
    }

    @Override
    public List<Emp> getEmpAll() {
        return empDAO.getEmpAll();
    }
}
